package com.sdb.drug.service;

import java.util.List;
import com.sdb.drug.domain.TdDrug;

/**
 * 药品库存Service接口
 * 
 * @author yyh
 * @date 2025-02-05
 */
public interface ITdDrugService 
{
    /**
     * 查询药品库存
     * 
     * @param code 药品库存主键
     * @return 药品库存
     */
    public TdDrug selectTdDrugByCode(Long code);

    /**
     * 查询药品库存列表
     * 
     * @param tdDrug 药品库存
     * @return 药品库存集合
     */
    public List<TdDrug> selectTdDrugList(TdDrug tdDrug);

    /**
     * 查询预警药品库存
     *
     * @param tdDrug 药品库存
     * @return 结果
     */
    public List<TdDrug> selectListWarn(TdDrug tdDrug);

    /**
     * 新增药品库存
     * 
     * @param tdDrug 药品库存
     * @return 结果
     */
    public int insertTdDrug(TdDrug tdDrug);

    /**
     * 修改药品库存
     * 
     * @param tdDrug 药品库存
     * @return 结果
     */
    public int updateTdDrug(TdDrug tdDrug);

    /**
     * 批量删除药品库存
     * 
     * @param codes 需要删除的药品库存主键集合
     * @return 结果
     */
    public int deleteTdDrugByCodes(Long[] codes);

    /**
     * 删除药品库存信息
     * 
     * @param code 药品库存主键
     * @return 结果
     */
    public int deleteTdDrugByCode(Long code);

    /**
     * 入库
     * @param tdDrug
     * @return
     */
    int inStock(TdDrug tdDrug);

    /**
     * 出库
     * @param tdDrug
     * @return
     */
    int outStock(TdDrug tdDrug);

    List<TdDrug> selectListByKey(String keyword);

    /**
     * 批量更新药品库存
     * @param tdDrugs 药品库存信息列表
     * @return 更新的记录数
     */
    int dispenseMedicines(List<TdDrug> tdDrugs);
}
